Vue.js дозволяє виконувати анімацію елементів за допомогою:
<transition>
При появі і приховуванні елемента Vue.js додає відповідні класи до цього елемента. Щоб Vue.js застосовував анімацію і додавав класи необхідно елементи вказати у тег transition з атрибутом name - назвою анімації.
Приклад анімації з використанням transition:
<div id="test">
<button v-on:click="visible=!visible">{{visible}}</button> <transition name="anime"><div v-show="visible">Приклад анімації Vue.js!</div></transition>
</div>
<style>
.anime-enter-active, .anime-leave-active{transition: all .3s;}
.anime-enter{opacity:0; color: blue;}
.anime-enter-to{opacity:1; color: black;}
.anime-leave{opacity:1; color:black;}
.anime-leave-to{opacity:0; color:blue;}
</style>
new Vue({el:'#test', data:{visible:true}});
Анімація у фреймворку Vue.js.
new Vue({el:'#app', data:{state:true}});
<div id="app2">
<div class="div-palpitation">
<transition name="img-palpitation">
<img v-if="show" src="https://vuejs.org/images/logo.png" />
</transition>
</div>
<button v-on:click="show=!show">Анімація</button>
</div>
<style>
.div-palpitation{
min-height: 400px; /* висота зображення */
}
.img-palpitation-enter-active {
animation: palpitation-in .5s;
}
.img-palpitation-leave-active {
animation: palpitation-in .5s reverse;
}
@keyframes palpitation-in {
0%{transform: scale(0);}
25%{transform: scale(1.5);}
50%{transform: scale(0.7);}
75%{transform: scale(1.7);}
100%{transform: scale(1);}
}
</style>
new Vue({el:'#app2', data:{show:true}});